Rethinking Smart Contract Fuzzing: Fuzzing With Invocation Ordering and Important Branch Revisiting

نویسندگان

چکیده

Blockchain smart contracts have given rise to a variety of interesting and compelling applications emerged as revolutionary force for the Internet. Smart from various fields now hold over one trillion dollars worth virtual coins, attracting numerous attacks. Quite few practitioners devoted themselves developing tools detecting bugs in contracts. One line efforts revolve around static analysis techniques, which heavily suffer high false positive rates. Another works concentrate on fuzzing techniques. Unfortunately, current approaches tend conduct starting initial state contract, expends too much energy revolving contract thus is usually unable unearth triggered by other states. Moreover, most existing methods treat each branch equally, failing take care branches that are rare or more likely possess bugs. This might lead resources wasted normal branches. In this paper, we try tackle these challenges three aspects: 1) generating function invocation sequences, explicitly consider data dependencies between functions facilitate exploring richer We further prolong sequence $\mathcal {S}_{1}$ appending new {S}_{2}$ , so appended can start states different state; 2) incorporate distance-based measure evolve test cases iteratively towards target branch; 3) engage search algorithm discover vulnerable branches, design an allocation mechanism exercising crucial implement IR-Fuzz extensively evaluate it 12K real-world Empirical results show that: (i) achieves 28% higher coverage than state-of-the-art approaches, (ii) detects vulnerabilities increases average accuracy vulnerability detection 7% methods, (iii) fast, 350 per second. Our implementation dataset released at https://github.com/Messi-Q/IR-Fuzz hoping future research.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Well-typed generic smart-fuzzing for APIs

Despite recent advances in program certification, testing remains a widely-used component of the software development cycle. Various flavours of testing exist: popular ones include unit testing, which consists in manually crafting test cases for specific parts of the code base, as well as QuickCheck-style testing, where instances of a type are automatically generated to serve as test inputs. Th...

متن کامل

H-Fuzzing: A New Heuristic Method for Fuzzing Data Generation

How to efficiently reduce the fuzzing data scale while assuring high fuzzing veracity and vulnerability coverage is a pivotal issue in program fuzz test. This paper proposes a new heuristic method for fuzzing data generation named with H-Fuzzing. H-Fuzzing achieves a high program execution path coverage by retrieving the static information and dynamic property from the program. Our experiments ...

متن کامل

Fuzzing with Code Fragments (-2)

Fuzz testing is an automated technique providing random data as input to a software system in the hope to expose a vulnerability. In order to be effective, the fuzzed input must be common enough to pass elementary consistency checks; a JavaScript interpreter, for instance, would only accept a semantically valid program. On the other hand, the fuzzed input must be uncommon enough to trigger exce...

متن کامل

Improving Fuzzing with Symbolic Execution

Fuzzing is a great technique to, for example, discover and reproduce software system vulnerabilities. However, there exist problems with finding test inputs for complex checks (e.g., string equality checks). A recent approach proposes to combine fuzzing techniques with symbolic execution to effectively tackle this problem [1]. The student should examine and discuss the approach given in the pap...

متن کامل

Distributed evolutionary fuzzing with Evofuzz

This paper describes the design of a tool (called Evofuzz) that implements the technique of evolutionary (or coverage-guided) fuzzing in a scalable, distributed manner. The architecture, design-choices and implementation specifics of this tool are examined, explained and criticized. After outlining possible improvements and future work that is not yet completed, the paper finishes by presenting...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

ژورنال

عنوان ژورنال: IEEE Transactions on Information Forensics and Security

سال: 2023

ISSN: ['1556-6013', '1556-6021']

DOI: https://doi.org/10.1109/tifs.2023.3237370